1. Field of the Invention
The present invention relates to high availability in networks. More specifically, the present invention relates to methods and devices for detecting the failure of an active path or paths and switching over to a standby or remaining active path.
2. Description of Related Art
Customers often need to replicate data from a first location to a second location in real time. This is desirable, for example, to allow for a recovery from a data loss event such as a downed primary data center, an extended power outage, natural disaster, etc.: if data are stored in the second location, a customer may more readily recover from a disaster in the first location. Data are transmitted between the first and second locations via a path through an intervening network (e.g., a private WAN facility). If the path fails, the data are transmitted via a redundant path.
Normally, the determination of when to switch over to a redundant path is made by a device in the first location, which may be a host, a storage device, etc. This determination is based upon sets of timers that are used to expire a potentially failed transaction on the path. For example, “keepalive” or similar messages are often exchanged between devices in the first and second locations to discover if the end service and network transport is available. If a “keepalive” message is not received within a timer period, a switchover to the redundant path is triggered. The “keepalive” mechanism is required due to the fact that no direct linkage exists between the end device and the network transport to signal a broken path. Therefore, it is the responsibility of the end devices to detect the failed network path using mechanisms such as “keepalive.” In general, the timer periods are quite long (e.g., 60 to 180 seconds), because it is undesirable to switch unnecessarily to the redundant path or experience any flapping of the service between two feasible paths.
It is therefore desirable to provide methods and apparatus for improving the speed and accuracy of making a determination of when it is necessary to switch over from a primary data path to a redundant data path connecting client devices across an intervening network. It would be desirable if such methods and devices could be used with a variety of client devices and with a range of protocols.